#include <stdio.h>
#include <string.h>

using namespace std;

int n;  // 棋盘大小。

#define MAXN 10

int C_cached[MAXN][MAXN];

void MakeTable() {
  // 组合数打表。
  for (int i = 0; i <= n; ++i) {
    for (int j = 0; j <= i; ++j) {
      if (i == 0 || j == i || j == 0) {
        C_cached[i][j] = 1;
        continue;
      }
      C_cached[i][j] = C_cached[i - 1][j] + C_cached[i - 1][j - 1];
    }
  }
}

int NbyN(int n) {
   // 把n个车放置在边长为n的棋盘。
   if (n==0||n==1) return 1;
   int ans = 1;
   for (int i=2;i<=n;++i) {
     ans *= i;
   }
   return ans;
}

void Solve() {
  int ans = 0;
  for (int i = 0; i <= n; ++i) {
    int temp = C_cached[n][i];
    int cur = temp * temp * NbyN(i);
    // printf("i %d cur %d\n",i,cur);
    ans += cur;
  }
  printf("%d\n", ans);
}

int main() {
    scanf("%d", &n);
  // n = 3;
  MakeTable();
  Solve();

  return 0;
}